package com.wn.common.utils;

import lombok.extern.slf4j.Slf4j;

import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

@Slf4j
public class ThreadPoolFactory {
 
    /**
     * 线程池信息： 核心线程数量5，最大数量10，队列大小20，超出核心线程数量的线程存活时间：30秒， 指定拒绝策略的
     */
    public static final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
            5,   //核心线程数量5
            10,    // 最大数量10
            30,
            TimeUnit.SECONDS,   // 超出核心线程数量的线程存活时间：30秒，
            new LinkedBlockingQueue<Runnable>(20),  //队列大小20
            new RejectedExecutionHandler() {                //拒绝策略
        @Override
        public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
            log.error("有任务被拒绝执行了");
        }
    });
 
}
